package com.ch7;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.format.DateTimeFormatter;

/**
 * @author woldier
 * @version 1.0
 * @description simpleDateFormat 共享问题
 * @date 2023/5/16 11:00
 **/
public class Demo01 {
    public static void main(String[] args) {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");
        for (int i = 0; i < 10; i++) {
            new Thread(() -> {
                try {
                    /**
                     * 1. 直接多线程操作,报错
                     */
                    simpleDateFormat.parse("1959-12-06");

                    /**
                     * 2. 加锁则可以解决问题
                     */
                    /*
                    synchronized (simpleDateFormat){
                        simpleDateFormat.parse("1959-12-06");
                    }
                    */

                } catch (ParseException e) {
                    throw new RuntimeException(e);
                }
            }).start();
        }
    }

    /**
    *
    * description DateTimeFormatter 不可变对象解决问题
    *
    *
    * @return void
    * @author: woldier
    * @date: 2023/5/16 11:12
    */
    public static void test() {
        DateTimeFormatter simpleDateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd");
        for (int i = 0; i < 10; i++) {
            new Thread(() -> {
                simpleDateFormat.parse("1959-12-06");
            }).start();
        }
    }
}
